package com.demo.java.OD501_550.OD545;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【小扇和小船的数字游戏(C卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146521398
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        int targetCount = countOnes(n); // 统计原始数字的1的个数
        int m = n + 1;

        // 不断查找，直到找到第一个1的个数相同的数字
        while (countOnes(m) != targetCount) {
            m++;
        }

        System.out.println(m); // 输出结果
    }

    // 统计一个整数的二进制表示中1的个数
    public static int countOnes(int num) {
        int count = 0;
        while (num > 0) {
            // num & 1 可以判断最低位是否为1
            count += (num & 1);
            num >>= 1; // 右移一位，相当于除以2
        }
        return count;
    }
}